// import uris from 'services/uris'
import Vue from 'vue'
// import apiHost from 'settings/api-host'
function makeData(originalData,firstSortKey,secondSortKey,textKey,imageKey,parentText){
	let addedHeader={},data=[]
	originalData.sort((a,b)=>{
		let aAsiCode=a[firstSortKey].toUpperCase(),
			bAsiCode=b[firstSortKey].toUpperCase()
		if(aAsiCode<bAsiCode){
			return -1
		}else if(aAsiCode==bAsiCode){
			if(a[secondSortKey].toUpperCase()<b[secondSortKey].toUpperCase()){
				return -1
			}else{
				return 1
			}
		}else{
			return 1
		}
	})
	originalData.forEach((item)=>{
		if(!(item[firstSortKey] in addedHeader)){
			addedHeader[item[firstSortKey]]=true
			data.push({
				type:'subHeader',text:item[firstSortKey]
			})
		}
		data.push({
			text:item[textKey],
			parentText:parentText ? parentText : '',
			img:Vue.prototype.$.host + item[imageKey]
		})
	})
	return data
}
// function makeBrandsData(originalData){
// 	let addedHeader={},data=[]
// 	originalData.sort((a,b)=>{
// 		let aAsiCode=a.brandEnglish.toUpperCase(),
// 			bAsiCode=b.brandEnglish.toUpperCase()
// 		if(aAsiCode<bAsiCode){
// 			return -1
// 		}else if(aAsiCode==bAsiCode){
// 			if(a.brandName.toUpperCase()<b.brandName.toUpperCase()){
// 				return -1
// 			}else{
// 				return 1
// 			}
// 		}else{
// 			return 1
// 		}
// 	})
// 	originalData.forEach((item)=>{
// 		if(!(item.brandEnglish in addedHeader)){
// 			addedHeader[item.brandEnglish]=true
// 			data.push({
// 				type:'subHeader',text:item.brandEnglish
// 			})
// 		}
// 		data.push({
// 			text:item.brandName,
// 			img:apiHost.dynamicHost.get()+item.brandLogo
// 		})
// 	})
// 	return data
// }
// function makeSeriesData(originalData){
// 	let addedHeader={},data=[]
// 	originalData.sort((a,b)=>{
// 		let aAsiCode=a.manufacturer.toUpperCase(),
// 			bAsiCode=b.manufacturer.toUpperCase()
// 		if(aAsiCode<bAsiCode){
// 			return -1
// 		}else if(aAsiCode==bAsiCode){
// 			if(a.name.toUpperCase()<b.name.toUpperCase()){
// 				return -1
// 			}else{
// 				return 1
// 			}
// 		}else{
// 			return 1
// 		}
// 	})
// 	originalData.forEach((item)=>{
// 		if(!(item.manufacturer in addedHeader)){
// 			addedHeader[item.manufacturer]=true
// 			data.push({
// 				type:'subHeader',text:item.manufacturer
// 			})
// 		}
// 		data.push({
// 			text:item.name,
// 			img:apiHost.dynamicHost.get()+item.image
// 		})
// 	})
// 	return data

// }
function makeTypesData(originalData){
	return originalData.map((type)=>{
		return {
			text:type
		}
	})
}
function getBrands(success,fail){
	Vue.prototype.$.get({methodName: 'QueryCarBrand'})
	.then((response)=>{
		success && success(makeData(response.data.brands,'brandEnglish','brandName','brandName','brandLogo'))
	},(response)=>{
		fail && fail('未知错误')
	})
}
function getSeries(params,success,fail){
	params['methodName'] = 'QueryCarSeries'
	Vue.prototype.$.get(params)
	.then((response)=>{
		success && success(makeData(response.data.serieDatas,'manufacturer','name','name','image',params.brand))
	},(response)=>{
		fail && fail('未知错误')
	})
}
function getTypes(params,success,fail){
	params['methodName'] = 'QueryCarType'
	Vue.prototype.$.get(params)
	.then((response)=>{
		success && success(makeTypesData(response.data.types))
	},(response)=>{
		fail && fail('未知错误')
	})
}
export default function(params,success,fail){
	console.log(params)
	// setTimeout(()=>{
	// 	success && success([{type:'subHeader',text:'sub header 1'},{img:'',text:'level'+(params.level+1)+'-1'},{text:'level'+(params.level+1)+'-2'}])			
	// },1000)
	switch (params.level){
		case 0:
		getBrands.bind(this)(success,fail)
		break
		case 1:
		getSeries.bind(this)({brand:params.item.text},success,fail)
		break
		case 2:
		getTypes.bind(this)({series:params.item.text,brand:params.item.parentText},success,fail)
		break
		default:
		console.log('not supported level')
	}
}